#pragma once

#include "Hazel/src/Hazel/Render/VertexArray.h"

namespace Hazel{
    
    class OpenGLVertexArray:public VertexArray
    {
    public:
        OpenGLVertexArray();
        virtual ~OpenGLVertexArray();

        virtual void Bind()const override;
        virtual void Unbind()const override;

        virtual void AddVertexBuffer(const Hazel::Ref<VertexBuffer>& vertexBuffer) override;
        virtual void SetIndexBuffer(const Hazel::Ref<IndexBuffer>& indexBuffer) override;
        
        virtual const std::vector<Hazel::Ref<VertexBuffer>>& GetVertexBuffers() const override {return m_VertexBuffers;} 
        virtual const Hazel::Ref<IndexBuffer>& GetIndexBuffer() const override {return m_IndexBuffers;} 

    private:
        uint32_t m_RendererID;
        std::vector<std::shared_ptr<VertexBuffer>> m_VertexBuffers;
        std::shared_ptr<IndexBuffer> m_IndexBuffers;
    };
}